home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 80 / CD Actual 80 Julio-Agosto 2003.iso / Linux / LinuxGazette / lg / issue47 / misc / bueno / server.c < prev   
Encoding:
C/C++ Source or Header  |  2002-08-14  |  1.2 KB  |  44 lines

  1. /* server.c */
  2.  
  3. #include<sys/types.h>
  4. #include<sys/socket.h>
  5. #include<netinet/in.h>
  6. #include<unistd.h>
  7. #include<stdlib.h>
  8. #include<stdio.h>
  9.  
  10. main()
  11. {
  12.    int cont,create_socket,new_socket,addrlen;
  13.    int bufsize = 1024;
  14.    char *buffer = malloc(bufsize);
  15.    struct sockaddr_in address;
  16.    
  17.    printf("\x1B[2J");
  18.    if ((create_socket = socket(AF_INET,SOCK_STREAM,0)) > 0)
  19.      printf("The socket was created\n");
  20.    address.sin_family = AF_INET;
  21.    address.sin_addr.s_addr = INADDR_ANY;
  22.    address.sin_port = htons(15000);
  23.    if (bind(create_socket,(struct sockaddr *)&address,sizeof(address)) == 0)
  24.      printf("Binding Socket\n");
  25.    listen(create_socket,3);
  26.    addrlen = sizeof(struct sockaddr_in);
  27.    new_socket = accept(create_socket,(struct sockaddr *)&address,&addrlen);
  28.    if (new_socket > 0){
  29.       printf("The Client %s is connected...\n",inet_ntoa(address.sin_addr));
  30.       for(cont=1;cont<5000;cont++)
  31.     printf("\x7");
  32.    }
  33.    do{
  34.       printf("Message to send: ");
  35.       gets(buffer);
  36.       send(new_socket,buffer,bufsize,0);
  37.       recv(new_socket,buffer,bufsize,0);
  38.       printf("Message recieved: %s\n",buffer);
  39.    }while(strcmp(buffer,"/q")); //user æqÆ to quit
  40.    close(new_socket);
  41.    close(create_socket);
  42. }
  43.  
  44.